var a;
a = '12';
function fn(a, b) {
    return a + b;
}
var res = fn(1, 2);
// 联合类型 ｜
var b;
b = 123;
b = '123';
// any 表示任意所有类型，相当于没有类型限制，不推荐使用
// 会污染其他变量的类型
var bb = '123';
// let cc: number 
var cc = bb;
// void 表示没有任何类型
function fn2() {
    return undefined;
}
// never 表示永远没有类型，常用来抛出错误
function never(message) {
    throw new Error(message);
}
// 类型断言:告诉解析器c变量就是string类型
// 两种写法：
// 1. 变量 as 类型
// 2. <类型>变量
var c = '324';
var d = c;
var e = c;
console.log('123');
var Person = /** @class */ (function () {
    function Person(name) {
        this._name = name;
    }
    Object.defineProperty(Person.prototype, "name", {
        get: function () {
            return this._name;
        },
        set: function (name) {
            this._name = name;
        },
        enumerable: false,
        configurable: true
    });
    return Person;
}());
var p1 = new Person('孙悟空');
console.log(p1.name); // 通过getter读取name属性
p1.name = '猪八戒'; // 通过setter修改name属性
console.log(p1.name);
